[INFO] fetching crate bigqueue 0.0.2...
[INFO] checking bigqueue-0.0.2 against try#fceb2de603f0807f9049222f3f612ed51ed8f9dc for pr-157576
[INFO] extracting crate bigqueue 0.0.2 into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate bigqueue 0.0.2
[INFO] finished tweaking crates.io crate bigqueue 0.0.2
[INFO] tweaked toml for crates.io crate bigqueue 0.0.2 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate bigqueue 0.0.2 on toolchain fceb2de603f0807f9049222f3f612ed51ed8f9dc
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+fceb2de603f0807f9049222f3f612ed51ed8f9dc" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+fceb2de603f0807f9049222f3f612ed51ed8f9dc" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 69 packages to latest compatible versions
[INFO] [stderr]       Adding criterion v0.2.11 (available: v0.8.2)
[INFO] [stderr]       Adding lru v0.1.17 (available: v0.18.0)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+fceb2de603f0807f9049222f3f612ed51ed8f9dc" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3e793bdf10248eb2ddbd6b0faebed8155c11b4589982e2893733958d93e8d540" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] f38c9491d306cb8dc536e08c81afeea79f8ba8a0e23e135a377a65c23283d6fb
[INFO] running `Command { std: "docker" "start" "f38c9491d306cb8dc536e08c81afeea79f8ba8a0e23e135a377a65c23283d6fb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f38c9491d306cb8dc536e08c81afeea79f8ba8a0e23e135a377a65c23283d6fb" "/opt/rustwide/cargo-home/bin/cargo" "+fceb2de603f0807f9049222f3f612ed51ed8f9dc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f38c9491d306cb8dc536e08c81afeea79f8ba8a0e23e135a377a65c23283d6fb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f38c9491d306cb8dc536e08c81afeea79f8ba8a0e23e135a377a65c23283d6fb" "/opt/rustwide/cargo-home/bin/cargo" "+fceb2de603f0807f9049222f3f612ed51ed8f9dc" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking either v1.16.0
[INFO] [stderr]    Compiling cast v0.2.7
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]     Checking hashbrown v0.5.0
[INFO] [stderr]     Checking rand_xoshiro v0.1.0
[INFO] [stderr]     Checking memmap v0.7.0
[INFO] [stderr]     Checking clap v2.34.0
[INFO] [stderr]     Checking itertools v0.8.2
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking backtrace v0.3.76
[INFO] [stderr]     Checking lru v0.1.17
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking criterion-plot v0.3.1
[INFO] [stderr]     Checking failure v0.1.8
[INFO] [stderr]     Checking bigqueue v0.0.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/bigqueue.rs:234:26
[INFO] [stdout]     |
[INFO] [stdout] 234 |         let m = unsafe { (&mut (*self.q_head.get()).mmap) };
[INFO] [stdout]     |                          ^                              ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 234 -         let m = unsafe { (&mut (*self.q_head.get()).mmap) };
[INFO] [stdout] 234 +         let m = unsafe { &mut (*self.q_head.get()).mmap };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/bigqueue.rs:239:26
[INFO] [stdout]     |
[INFO] [stdout] 239 |         let m = unsafe { (&mut (*self.q_tail.get())) };
[INFO] [stdout]     |                          ^                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 239 -         let m = unsafe { (&mut (*self.q_tail.get())) };
[INFO] [stdout] 239 +         let m = unsafe { &mut (*self.q_tail.get()) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/bigqueue.rs:357:41
[INFO] [stdout]     |
[INFO] [stdout] 357 |     fn read_length(&mut self) -> Option<(usize)> {
[INFO] [stdout]     |                                         ^     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 357 -     fn read_length(&mut self) -> Option<(usize)> {
[INFO] [stdout] 357 +     fn read_length(&mut self) -> Option<usize> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_arenas`
[INFO] [stdout]   --> src/bigqueue.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let num_arenas = t_aid + 1 - h_aid;
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_arenas`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `tail` is never read
[INFO] [stdout]   --> src/bigqueue.rs:59:55
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let mut tail: Option<Rc<UnsafeCell<Arena>>> = None;
[INFO] [stdout]    |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 64 |         tail = Some(arc.clone());
[INFO] [stdout]    |         ---- `tail` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `head` is never read
[INFO] [stdout]   --> src/bigqueue.rs:60:55
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let mut head: Option<Rc<UnsafeCell<Arena>>> = None;
[INFO] [stdout]    |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 70 |             head = Some(arc);
[INFO] [stdout]    |             ---- `head` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_bytes` is never used
[INFO] [stdout]    --> src/lib.rs:212:4
[INFO] [stdout]     |
[INFO] [stdout] 212 | fn read_bytes(mmap: &MmapMut, offset: usize, length: u64) -> Option<Vec<u8>> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `delete_arena_backed_file` is never used
[INFO] [stdout]    --> src/bigqueue.rs:302:8
[INFO] [stdout]     |
[INFO] [stdout] 214 | impl BigQueue {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 302 |     fn delete_arena_backed_file(&self, aid: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `file` is never read
[INFO] [stdout]    --> src/bigqueue.rs:431:5
[INFO] [stdout]     |
[INFO] [stdout] 430 | pub struct Index {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] 431 |     file: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `flush` is never used
[INFO] [stdout]    --> src/bigqueue.rs:518:12
[INFO] [stdout]     |
[INFO] [stdout] 477 | impl Arena {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 518 |     pub fn flush(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/lib.rs:141:10
[INFO] [stdout]     |
[INFO] [stdout] 141 | #[derive(Fail, Debug)]
[INFO] [stdout]     |          ^---
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Fail` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_Error`
[INFO] [stdout] 142 | pub enum Error {
[INFO] [stdout]     |          ----- `Error` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/lib.rs:141:10
[INFO] [stdout]     |
[INFO] [stdout] 141 | #[derive(Fail, Debug)]
[INFO] [stdout]     |          ^---
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Display` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_Error`
[INFO] [stdout] 142 | pub enum Error {
[INFO] [stdout]     |          ----- `Error` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/bigqueue.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |         self.write_bytes(n_offset, bytes);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let _ = self.write_bytes(n_offset, bytes);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/bigqueue.rs:162:17
[INFO] [stdout]     |
[INFO] [stdout] 162 |                 self.flip_head_page_to(head_aid);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 162 |                 let _ = self.flip_head_page_to(head_aid);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/bigqueue.rs:222:9
[INFO] [stdout]     |
[INFO] [stdout] 222 |         self.index.set_head(aid, offset);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let _ = self.index.set_head(aid, offset);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/bigqueue.rs:228:9
[INFO] [stdout]     |
[INFO] [stdout] 228 |         self.index.set_tail(aid, offset);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let _ = self.index.set_tail(aid, offset);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/bigqueue.rs:317:9
[INFO] [stdout]     |
[INFO] [stdout] 317 |         self.get_tail().write_u64_at(i_offset, length);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 317 |         let _ = self.get_tail().write_u64_at(i_offset, length);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/bigqueue.rs:361:13
[INFO] [stdout]     |
[INFO] [stdout] 361 |             self.flip_head_page_to(self.head_aid + 1);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 361 |             let _ = self.flip_head_page_to(self.head_aid + 1);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/bigqueue.rs:367:17
[INFO] [stdout]     |
[INFO] [stdout] 367 |                 self.flip_head_page_to(self.head_aid + 1);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 367 |                 let _ = self.flip_head_page_to(self.head_aid + 1);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/bigqueue.rs:391:21
[INFO] [stdout]     |
[INFO] [stdout] 391 |                     self.flip_head_page_to(self.head_aid + 1);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 391 |                     let _ = self.flip_head_page_to(self.head_aid + 1);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/bigqueue.rs:400:25
[INFO] [stdout]     |
[INFO] [stdout] 400 |                         self.flip_head_page_to(self.head_aid + 1);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 400 |                         let _ = self.flip_head_page_to(self.head_aid + 1);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking criterion v0.2.11
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/bigqueue.rs:234:26
[INFO] [stdout]     |
[INFO] [stdout] 234 |         let m = unsafe { (&mut (*self.q_head.get()).mmap) };
[INFO] [stdout]     |                          ^                              ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 234 -         let m = unsafe { (&mut (*self.q_head.get()).mmap) };
[INFO] [stdout] 234 +         let m = unsafe { &mut (*self.q_head.get()).mmap };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/bigqueue.rs:239:26
[INFO] [stdout]     |
[INFO] [stdout] 239 |         let m = unsafe { (&mut (*self.q_tail.get())) };
[INFO] [stdout]     |                          ^                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 239 -         let m = unsafe { (&mut (*self.q_tail.get())) };
[INFO] [stdout] 239 +         let m = unsafe { &mut (*self.q_tail.get()) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/bigqueue.rs:357:41
[INFO] [stdout]     |
[INFO] [stdout] 357 |     fn read_length(&mut self) -> Option<(usize)> {
[INFO] [stdout]     |                                         ^     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 357 -     fn read_length(&mut self) -> Option<(usize)> {
[INFO] [stdout] 357 +     fn read_length(&mut self) -> Option<usize> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_arenas`
[INFO] [stdout]   --> src/bigqueue.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let num_arenas = t_aid + 1 - h_aid;
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_arenas`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `tail` is never read
[INFO] [stdout]   --> src/bigqueue.rs:59:55
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let mut tail: Option<Rc<UnsafeCell<Arena>>> = None;
[INFO] [stdout]    |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 64 |         tail = Some(arc.clone());
[INFO] [stdout]    |         ---- `tail` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `head` is never read
[INFO] [stdout]   --> src/bigqueue.rs:60:55
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let mut head: Option<Rc<UnsafeCell<Arena>>> = None;
[INFO] [stdout]    |                                                       ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 70 |             head = Some(arc);
[INFO] [stdout]    |             ---- `head` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_bytes` is never used
[INFO] [stdout]    --> src/lib.rs:212:4
[INFO] [stdout]     |
[INFO] [stdout] 212 | fn read_bytes(mmap: &MmapMut, offset: usize, length: u64) -> Option<Vec<u8>> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `delete_arena_backed_file` is never used
[INFO] [stdout]    --> src/bigqueue.rs:302:8
[INFO] [stdout]     |
[INFO] [stdout] 214 | impl BigQueue {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 302 |     fn delete_arena_backed_file(&self, aid: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `file` is never read
[INFO] [stdout]    --> src/bigqueue.rs:431:5
[INFO] [stdout]     |
[INFO] [stdout] 430 | pub struct Index {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] 431 |     file: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/lib.rs:141:10
[INFO] [stdout]     |
[INFO] [stdout] 141 | #[derive(Fail, Debug)]
[INFO] [stdout]     |          ^---
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Fail` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_Error`
[INFO] [stdout] 142 | pub enum Error {
[INFO] [stdout]     |          ----- `Error` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/lib.rs:141:10
[INFO] [stdout]     |
[INFO] [stdout] 141 | #[derive(Fail, Debug)]
[INFO] [stdout]     |          ^---
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Display` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_Error`
[INFO] [stdout] 142 | pub enum Error {
[INFO] [stdout]     |          ----- `Error` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/bigqueue.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |         self.write_bytes(n_offset, bytes);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let _ = self.write_bytes(n_offset, bytes);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/bigqueue.rs:162:17
[INFO] [stdout]     |
[INFO] [stdout] 162 |                 self.flip_head_page_to(head_aid);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 162 |                 let _ = self.flip_head_page_to(head_aid);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/bigqueue.rs:222:9
[INFO] [stdout]     |
[INFO] [stdout] 222 |         self.index.set_head(aid, offset);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let _ = self.index.set_head(aid, offset);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/bigqueue.rs:228:9
[INFO] [stdout]     |
[INFO] [stdout] 228 |         self.index.set_tail(aid, offset);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let _ = self.index.set_tail(aid, offset);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/bigqueue.rs:317:9
[INFO] [stdout]     |
[INFO] [stdout] 317 |         self.get_tail().write_u64_at(i_offset, length);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 317 |         let _ = self.get_tail().write_u64_at(i_offset, length);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/bigqueue.rs:361:13
[INFO] [stdout]     |
[INFO] [stdout] 361 |             self.flip_head_page_to(self.head_aid + 1);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 361 |             let _ = self.flip_head_page_to(self.head_aid + 1);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/bigqueue.rs:367:17
[INFO] [stdout]     |
[INFO] [stdout] 367 |                 self.flip_head_page_to(self.head_aid + 1);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 367 |                 let _ = self.flip_head_page_to(self.head_aid + 1);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/bigqueue.rs:391:21
[INFO] [stdout]     |
[INFO] [stdout] 391 |                     self.flip_head_page_to(self.head_aid + 1);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 391 |                     let _ = self.flip_head_page_to(self.head_aid + 1);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/bigqueue.rs:400:25
[INFO] [stdout]     |
[INFO] [stdout] 400 |                         self.flip_head_page_to(self.head_aid + 1);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 400 |                         let _ = self.flip_head_page_to(self.head_aid + 1);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/bigqueue.rs:547:9
[INFO] [stdout]     |
[INFO] [stdout] 547 |         qi.set_head(1, 3);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 547 |         let _ = qi.set_head(1, 3);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/bigqueue.rs:548:9
[INFO] [stdout]     |
[INFO] [stdout] 548 |         qi.set_tail(1, 4);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 548 |         let _ = qi.set_tail(1, 4);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/bigqueue.rs:569:9
[INFO] [stdout]     |
[INFO] [stdout] 569 |         t.write_u64_at(0, 100u64);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 569 |         let _ = t.write_u64_at(0, 100u64);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/bigqueue.rs:570:9
[INFO] [stdout]     |
[INFO] [stdout] 570 |         t.write_u64_at(8, 10u64);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 570 |         let _ = t.write_u64_at(8, 10u64);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 10.02s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: criterion v0.2.11
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 4`
[INFO] running `Command { std: "docker" "inspect" "f38c9491d306cb8dc536e08c81afeea79f8ba8a0e23e135a377a65c23283d6fb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f38c9491d306cb8dc536e08c81afeea79f8ba8a0e23e135a377a65c23283d6fb", kill_on_drop: false }`
[INFO] [stdout] f38c9491d306cb8dc536e08c81afeea79f8ba8a0e23e135a377a65c23283d6fb
